package com.cykj.pos.service.impl;

import com.cykj.pos.domain.dto.MerchantCloseDTO;
import com.cykj.pos.domain.dto.ProfitDeatailDTO;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.apache.commons.lang3.StringUtils;
import com.cykj.pos.mapper.BizSubAccountMapper;
import com.cykj.pos.domain.BizSubAccount;
import com.cykj.pos.service.IBizSubAccountService;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

/**
 * pos1.0分账Service业务层处理
 *
 * @author weijianbo
 * @date 2021-08-26
 */
@Service
public class BizSubAccountServiceImpl extends ServiceImpl<BizSubAccountMapper, BizSubAccount> implements IBizSubAccountService {

    @Resource
    private BizSubAccountMapper bizSubAccountMapper;

    @Override
    public List<BizSubAccount> queryList(BizSubAccount bizSubAccount) {
        LambdaQueryWrapper<BizSubAccount> lqw = Wrappers.lambdaQuery();
        if (StringUtils.isNotBlank(bizSubAccount.getName())){
            lqw.like(BizSubAccount::getName ,bizSubAccount.getName());
        }
        if (StringUtils.isNotBlank(bizSubAccount.getSnCode())){
            lqw.eq(BizSubAccount::getSnCode ,bizSubAccount.getSnCode());
        }
        if (bizSubAccount.getUserId() != null){
            lqw.eq(BizSubAccount::getUserId ,bizSubAccount.getUserId());
        }
        if (bizSubAccount.getMerchId() != null){
            lqw.eq(BizSubAccount::getMerchId ,bizSubAccount.getMerchId());
        }
        if (StringUtils.isNotBlank(bizSubAccount.getCloseType())){
            lqw.eq(BizSubAccount::getCloseType ,bizSubAccount.getCloseType());
        }
        if (StringUtils.isNotBlank(bizSubAccount.getAmount())){
            lqw.eq(BizSubAccount::getAmount ,bizSubAccount.getAmount());
        }
        if (StringUtils.isNotBlank(bizSubAccount.getCloseMoney())){
            lqw.eq(BizSubAccount::getCloseMoney ,bizSubAccount.getCloseMoney());
        }
        if (StringUtils.isNotBlank(bizSubAccount.getCloseRate())){
            lqw.eq(BizSubAccount::getCloseRate ,bizSubAccount.getCloseRate());
        }
        if (StringUtils.isNotBlank(bizSubAccount.getOverMoney())){
            lqw.eq(BizSubAccount::getOverMoney ,bizSubAccount.getOverMoney());
        }
        if (bizSubAccount.getTransactionId() != null){
            lqw.eq(BizSubAccount::getTransactionId ,bizSubAccount.getTransactionId());
        }
        return this.list(lqw);
    }

    @Override
    public int saveMerchantCloseDTO(MerchantCloseDTO merch) {
        return bizSubAccountMapper.saveMerchantCloseDTO(merch);
    }

    @Override
    public void saveProfitDetail(ProfitDeatailDTO profitDeatailDTO) {
        bizSubAccountMapper.saveProfitDetail(profitDeatailDTO);
    }
    @Override
    public void updateProfitDetail(ProfitDeatailDTO profitDeatailDTO) {
        bizSubAccountMapper.updateProfitDetail(profitDeatailDTO);
    }

    @Override
    public ProfitDeatailDTO getProfitDeatailDTOByUuid(String uuid,Long merchId) {
        return bizSubAccountMapper.getProfitDeatailDTOByUuid(uuid,merchId);
    }

    @Override
    public void updatePlusMoneyProfitDetail(ProfitDeatailDTO profitDeatailDTO) {
        bizSubAccountMapper.updatePlusMoneyProfitDetail(profitDeatailDTO);
    }
}
